#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=200001;
int pri[mxn],cnt=0;
int t[mxn];
int c[mxn];
int ans[mxn],num=0;
bool flag=0;
int n,m;
int main()
{
    cin>>n>>m;
    int i,j;
    for(i=2;i*i<=m;i++)
    {
        if(m%i==0)
        {
            pri[++cnt]=i;
            while(m%i==0)
            {
                m/=i;
                t[cnt]++;
            }
        }
    }
    if(m>1)
    {
    	pri[++cnt]=m;
    	t[cnt]++;
    }
    for(i=1;i<n-1;i++)
    {
        int a=n-i,b=i;
        for(j=1;j<=cnt;j++)
        {
            while(a%pri[j]==0)
            {
                a/=pri[j];
                c[j]++;
            }
        }
        for(j=1;j<=cnt;j++)
        {
            while(b%pri[j]==0)
            {
                b/=pri[j];
                c[j]--;
            }
        }
        flag=0;
        for(j=1;j<=cnt;j++)
        {
            if(c[j]<t[j])
            {
                flag=1;
                break;
            }
        }
        if(!flag)
        {
        	ans[++num]=i+1;
        }
    }
    printf("%d\n",num);
    for(i=1;i<=num;i++)
        printf("%d ",ans[i]);
    printf("\n");
    return 0;
}
